@using System.Linq.Expressions
@inherits FshComponentBase
<MudTextField @attributes="AdditionalAttributes"
              Label="@Label"
              Placeholder="@Placeholder"
              Value="@Value"
              ValueChanged="@ValueChanged"
              ValueExpression="@ValueExpression"
              For="@For"
              Variant="@Variant"
              Disabled="@Disabled"
              Adornment="@Adornment"
              AdornmentIcon="@AdornmentIcon"
              AdornmentColor="@AdornmentColor"
              Immediate="true"
              Margin="Margin.Dense"
              Dense="true"
              Required="@Required"
              InputType="@InputType"
              Lines="@Lines" />

@code {
    [Parameter] public string? Label { get; set; }
    [Parameter] public string? Placeholder { get; set; }
    [Parameter] public string? Value { get; set; }
    [Parameter] public EventCallback<string?> ValueChanged { get; set; }
    [Parameter] public Expression<Func<string?>>? ValueExpression { get; set; }
    [Parameter] public Expression<Func<string?>>? For { get; set; }
    [Parameter] public Variant Variant { get; set; } = Variant.Outlined;
    [Parameter] public bool Disabled { get; set; }
    [Parameter] public bool Required { get; set; }
    [Parameter] public Adornment Adornment { get; set; } = Adornment.None;
    [Parameter] public string? AdornmentIcon { get; set; }
    [Parameter] public Color AdornmentColor { get; set; } = Color.Default;
    [Parameter] public InputType InputType { get; set; } = InputType.Text;
    [Parameter] public int Lines { get; set; } = 1;
    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }
}
